//==========================================================================
// Copyright (c) 2000-2008,  Elastos, Inc.  All Rights Reserved.
//==========================================================================

#include <bsp.h>
#include <init.h>
#include <timer.h>

#define PIT_LATCH   ((PIT_ClockRate + krn.uTickRate / 2) / krn.uTickRate)

EXTERN_C DECL_CODEINIT void CDECL InitPIT()
{
//    Outl(_OSSR, _M0);
//
//    Outl(_OSCR0, 0);
//    Outl(_OSMR0, PIT_LATCH);
//
//    Outl(_OIER, _E0);
}

unsigned long LastTimerCount = 0;
EXTERN_C void CDECL BspReloadPIT()
{
//    static uint_t s_uCount = 0;
//    s_uCount++;
//    if (0 == s_uCount % 100) {
//        kprintf("@");
//    }

//    uint_t *sp;
//    ASM("str    %%sp, %0;"
//        :"=m"(sp));
//
//    uint_t *fp;
//    ASM("str    %%fp, %0;"
//        :"=m"(fp));
//
//    kprintf("sp = %x, fp = %x\n", sp, fp);

    //Outl(_OSCR0, 0);
//    LastTimerCount = Inl(_OSCR0);
//    Outl(_OSMR0, LastTimerCount + PIT_LATCH);
}

EXTERN_C uint_t CDECL BspGetPITTime()
{
//    return (Inl(_OSCR0) - LastTimerCount) * PIT_ClockCycle;
    return 0;
}
